﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FantastPlatform.Framework.IModel;
using FantastPlatform.Framework.Core;
using Newtonsoft.Json;
using FantastPlatform.Framework.Common.Serializable;


namespace FantastPlatform.Framework.Model
{
    /// <summary>
    /// 人员
    /// </summary>
    public class Person :Item, IPerson
    {
        #region IPerson 成员

        public virtual DateTime? Birthday
        {
            get;
            set;
        }

        [JsonConverter(typeof(InterfaceConverter<CredentialsType>))]
        public virtual ICredentialsType CredentialsType
        {
            get;
            set;
        }

        public virtual string IdCard
        {
            get;
            set;
        }
        public virtual string Photo
        {
            get;
            set;
        }

        [JsonConverter(typeof(InterfaceConverter<Sex>))]
        public virtual ISex Sex
        {
            get;
            set;
        }
        [JsonConverter(typeof(InterfaceConverter<Degree>))]
        public virtual IDegree Degree
        {
            get;
            set;
        }
        #endregion

        #region IPerson 成员


        public virtual string NativePlace
        {
            get;
            set;
        }

        #endregion

        #region IPerson 成员

        [JsonConverter(typeof(InterfaceConverter<PoliticalStatus>))]
        public virtual IPoliticalStatus PoliticalStatus
        {
            get;
            set;
        }

        [JsonConverter(typeof(InterfaceConverter<Nation>))]
        public virtual INation Nation
        {
            get;
            set;
        }



         [JsonConverter(typeof(InterfaceConverter<PoliceType>))]
        public virtual IPoliceType PoliceType
        {
            get;
            set;
        }

        #endregion
    }
}
